/**
 * =============================================================================
 * ************   树形组件   ************
 * =============================================================================
 */
@import '../collapse/index';
@import '../input/checkbox';

.mdui-treeview {
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
  background-color: transparent;
}

/* 组件项 */
.mdui-treeview-item {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  box-sizing: border-box;
  margin-top: 2px;
  margin-bottom: 2px;
  margin-left: 36px;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .3s @animation-curve-default;

  .mdui-collapse-header& {
    margin-left: 8px;
  }

  /* 组件项图标 */
  .mdui-icon {
    width: 24px;
    min-width: 24px;
    height: 24px;
    color: @color-black-icon;
  }

  .mdui-checkbox {
    margin: 0;

    .mdui-checkbox-icon {
      box-shadow: none !important;
    }
  }

  &:has(.mdui-collapse-arrow) {
    margin-left: 0;
  }

  &+.mdui-treeview-item {
    margin-top: 4px;
  }
}

/* 组件项文本内容 */
.mdui-treeview-item-content {
  display: flex;
  flex-grow: 1;
  flex-wrap: nowrap;
  align-items: center;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 4px;
  font-weight: 400;
  font-size: 16px;
  line-height: 36px;

  &:hover {
    background-color: @color-hover-black;
  }
}

/* 激活状态的组件项 */
.mdui-treeview-item-active {
  font-weight: 700;
  background-color: @color-hover-black;

  .mdui-treeview-item-content {
    font-weight: 700;
  }
}

/* 组件项内的元素间添加间距 */
.mdui-treeview-item-content {
  ~.mdui-icon {
    margin-left: 4px;
  }

  ~.mdui-checkbox {
    margin-left: 0;
  }
}

// 选中状态的图标
.mdui-treeview-item-checked {
  .mdui-checkbox-icon {
    &::after {
      background-color: @color-default-a200;
      border-color: @color-default-a200;
    }

    &::before {
      transform: rotateZ(37deg) scale(1);
      opacity: 1;
    }
  }
}

/* 密集型组件 */
.mdui-treeview-dense {
  padding: 4px 0;
  font-size: 13px;

  // 图标
  .mdui-icon {
    width: 20px !important;
    height: 20px !important;
    font-size: 20px !important;
  }

  // 组件项内容
  .mdui-treeview-item-content {
    padding-top: 0;
    padding-bottom: 0;
    font-size: 13px;
    line-height: 32px;
  }
}


/**
 * =============================================================================
 * ************   Checkbox 强调色   ************
 * =============================================================================
 */

& {
  .loop-accent-theme(@counter-color) when (@counter-color > 0) {
    .loop-accent-theme((@counter-color - 1));
    @colorName: extract(@globalAccentColors, @counter-color);

    @color: 'color-@{colorName}-a200';

    .mdui-theme-accent-@{colorName} when not (@colorName =null) {

      // 选中状态的图标
      .mdui-treeview-item-checked {
        .mdui-checkbox-icon::after {
          background-color: @@color;
          border-color: @@color;
        }
      }
    }
  }

  .loop-accent-theme(length(@globalAccentColors));
}


/**
 * =============================================================================
 * ************   List dark   ************
 * =============================================================================
 */
.layout-theme({

  // 列表项
  .mdui-treeview-item {
    color: @color-white-text;
  }

  .mdui-treeview-item-content:hover {
    background-color: @color-hover-white;
  }

  // 图标
  .mdui-icon {
    color: @color-white-icon;
  }

  // 激活状态的列表项
  .mdui-treeview-item-active {
    background-color: @color-hover-white;
  }
});

/**
 * ==============================================================================
 * ************   List inner theme   ************
 * ==============================================================================
 */
[class*="mdui-color-"] {
  .mdui-treeview-item {
    color: inherit;
  }
}